#ifndef rustcargotomlfilevisitor_h__
#define rustcargotomlfilevisitor_h__

#include "FileGenVisitor.h"
#include "CLangTypeNameVisitor.h"
#include "CLangTypeHeaderVisitor.h"

class RustCargoTomlFileVisitor : public FileGenVisitor {
public:
    RustCargoTomlFileVisitor(
        const std::string& outputDir,
        const std::string& idlFileName,
        CLangTypeNameVisitor* typeNameVisitor,
        CLangTypeHeaderVisitor* headerVisitor);
    ~RustCargoTomlFileVisitor();
    void visit(SpecificationNode& node) override;
private:
    void generateCargoToml(const std::string& packageName);
private:
    CLangTypeNameVisitor* typeNameVisitor_;
    CLangTypeHeaderVisitor* headerVisitor_;
    std::string idlFileName_;
};

#endif // rustcargotomlfilevisitor_h__